package marchsoft.modules.selfFish.pisciculture.service;

import com.baomidou.mybatisplus.extension.service.IService;
import marchsoft.modules.selfFish.pisciculture.entity.CommunityCommunication;
import marchsoft.modules.selfFish.pisciculture.entity.dto.CommunityCommunicationDto;
import marchsoft.response.Result;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Set;

/**
 * @author Lenovo
 * @version 1.0
 * @title CommunityCommunicationService
 * @description
 * @create 2024-07-15 17:29
 */
public interface CommunityCommunicationService extends IService<CommunityCommunication> {

    /**查询
     * @param content 名称
     * @param pageNum 当前页
     * @param pageSize 每页数量
     * @return Result<Object>
     * @description 获取社区交流列表
     */
    Result<Object> getCommunityCommunicationList(String content, Long pageNum, Long pageSize);

    /**新增
     * @param knowledgeDto 创建社区交流对象
     * @return Result<Object>
     * @description 新增社区交流
     */
    Result<Object> create(CommunityCommunicationDto knowledgeDto);

    /**删除
     * @param ids 删除社区交流id
     * @return Result<Object>
     * @description 删除社区交流
     */
    Result<Object> delete(Set<Long> ids);

    /**修改
     * @param knowledgeDto 修改社区交流对象
     * @return Result<Object>
     * @description 修改社区交流
     */
    Result<Object> update(CommunityCommunicationDto knowledgeDto);

    /**导出
     * @param content 名称
     * @param response 响应
     * @throws IOException 异常
     * @description 导出社区交流数据
     */
    void download(String content, HttpServletResponse response) throws IOException;

    /**添加查看数
     * @param id 社区交流id
     * @return Result<Object>
     * @description 添加查看数
     */
    Result<Object> addViewNum(Long id);

    /**点赞
     * @param id 社区交流id
     * @return Result<Object>
     * @description 添加点赞数
     */
    Result<Object> addThumbsUp(Long id);

    /**取消点赞
     * @param id 社区交流id
     * @return Result<Object>
     * @description 取消点赞数
     */
    Result<Object> deleteThumbsUp(Long id);
}
